﻿/// <reference path="../jquery-1.4.2-vsdoc.js" />
/// <reference path="../Default.js" />
function enderecoComplete(CEP_END) {
    if (CEP_END != '') {
        progressDialog(true);
        $.getJSON('/Enderecos/CepSearch', { ID_FNPR: 8570, CEP_END: CEP_END }, function (data) {
            progressDialog(false);
            if (data != false) {
                if (data.LOGR_END)
                    $('#LOGR_END').val(data.LOGR_END).attr('readOnly', 'readOnly');

                CidadeSearch(data.ID_UF, data.ID_CID);
                BairroSearch(data.ID_CID, data.ID_BAIRRO);
                $('#ID_LOGRAD').val(data.ID_LOGRAD);
                $('#ID_END').val(data.ID_END);
                $('#ID_UF').val(data.ID_UF);
            }
            else {
                $('#ID_LOGRAD, #ID_END, #ID_UF, #ID_CID, #ID_BAIRRO, #LOGR_END').val('');
                $('#ID_UF').delay(500).focus();
            }
        });
    }
}

function CidadeSearch(ID_UF, ID_CID) {
    $('#ID_CID option').not(':first').remove();
    if ($('ID_UF').val() != '') {
        progressDialog(true);
        $.getJSON('/Enderecos/CidadeSearch', { ID_FNPR: 8571, ID_UF: ID_UF }, function (data) {
            progressDialog(false);
            if (data != '') {
                $.each(data, function (index, row) {
                    $("<option>").val(row.ID_CID).text(row.NOME_CID).appendTo('#ID_CID');
                });
                if (ID_CID) {
                    $('#ID_CID').val(ID_CID);
                }
                else {
                    $('#ID_CID').focus();
                }
            }
        });
    }
}

function BairroSearch(ID_CID, ID_BAIRRO) {
    $('#ID_BAIRRO option').not(':first').remove();
    if (ID_CID != '') {
        progressDialog(true);
        $.getJSON('/Enderecos/BairroSearch', { ID_FNPR: 8569, ID_CID: ID_CID }, function (data) {
            progressDialog(false);
            if (data != '') {
                $.each(data, function (index, row) {
                    $("<option>").val(row.ID_BAIRRO).text(row.NOME_BAIRRO).appendTo($("#ID_BAIRRO"));
                });
                if (ID_BAIRRO) {
                    $('#ID_BAIRRO').val(ID_BAIRRO);
                    $('#NUMERO_END').focus();
                }
                else {
                    $('#ID_BAIRRO').focus();
                }
            }
        });
    }
}

function BairroEdit() {
    if ($('#BAIRRO').is(':hidden')) {
        $('#NOMEBAIRRO').fadeOut('normal', function () {
            $('#BAIRRO').fadeIn('normal', function () {
                $('#BAIRRO select').focus()
            });
        });
    }
    else {
        $('#BAIRRO').val('').fadeOut('normal', function () {
            $('#NOMEBAIRRO').fadeIn('normal', function () {
                $('#NOMEBAIRRO input').focus();
            });
        });
    }
}

// Exibe o mapa do endereço
function enderecoMap(ID_ENPS) {
    if (ID_ENPS === undefined) {
        messageDialog('Atenção!', 'Selecione um endereço para visualizar o mapa');
    }
    progressDialog(true);
    $.getJSON('/Enderecos/PessoaIdSearch', { ID_ENPS: ID_ENPS }, function (data) {
        progressDialog(false);
        if (data) {
            $('<div id="__dialogMap">').appendTo('body');
            $('#__dialogMap').css('display', 'none');
            $('<div id="__map">').appendTo('#__dialogMap');
            $('#__map').css({ 'width': '100%', 'height': '100%' });
            var endereco = '';
            $.map(eval(data), function (row) {
                endereco = row.NOME_LOGRAD + ' ' + row.LOGR_END + ', ' + row.NUMERO_ENPS + ', ' + row.NOME_CID + ', ' + row.SIGLA_UF;
            });
            $('#__dialogMap').dialog({
                closeOnEscape: true,
                title: 'Mapa',
                modal: true,
                position: 'center',
                width: 500,
                height: 500,
                close: function () { $(this).dialog('destroy').remove(); }
            });
            $('#__map').jmap('init', {
                mapType: 'map',
                mapCenter: [-58.964391, -125.025787],
                mapZoom: 17,
                mapEnableType: true,
                mapEnableSmoothZoom: true,
                mapShowjMapsIcon: false,
                mapEnableScaleControl: true,
                mapControl: 'large',
                mapEnableDoubleClickZoom: true
            });
            $('#__map').jmap('SearchAddress', { 'query': endereco, 'returnType': 'getLocations' }, function (result, options) {
                var valid = Mapifies.SearchCode(result.Status.code);
                if (valid.success) {
                    $.each(result.Placemark, function (i, point) {
                        $('#__map').jmap('AddMarker', { 'pointLatLng': [point.Point.coordinates[1], point.Point.coordinates[0]], 'pointHTML': point.address, 'centerMap': true }, function () {
                            $('#__dialogMap').dialog('open');
                        });
                    });
                }
                else {
                    messageDialog('Erro na localização do endereço', valid.message, function () {
                        $('#__dialogMap').dialog('destroy').remove();
                    });
                }
            });
        }
        else {
            messageDialog('Atenção!', 'Erro na localização do endereço. Tente novamente.', function () {
                $('#__dialogMap').dialog('destroy').remove();
            });
        }
    });
}